package com.zbkj.crmeb.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.common.PageParamRequest;
import com.zbkj.crmeb.store.dto.ChannelIntegralProductConfigDTO;
import com.zbkj.crmeb.store.model.ChannelIntegralProductConfig;

import java.math.BigDecimal;
import java.util.List;

public interface ChannelIntegralProductConfigService extends IService<ChannelIntegralProductConfig> {

    /**
     * 功能描述: 获取商户积分商城商品设置
     * @Param: [dto, pageParamRequest]
     * @Return: java.util.List<com.zbkj.crmeb.store.dto.ChannelIntegralProductConfigDTO>
     * @Author: wangzh
     * @Date: 2023/2/27 10:44
     */
    List<ChannelIntegralProductConfigDTO> getIntegralProductConfig(ChannelIntegralProductConfigDTO dto, PageParamRequest pageParamRequest, Boolean isApp);

    /**
     * 功能描述: 保存/更新积分设置内容
     * @Param: [dto]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/2/27 16:32
     */
    Boolean saveOrUpdateIntegralProduct(ChannelIntegralProductConfigDTO dto);

    /**
     * 功能描述: 积分商品上架/下架
     * @Param: [id]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/2/27 16:59
     */
    Boolean updateStatus(Integer id, Integer status);

    /**
     * 功能描述: 积分商城下拉列表
     * @Param: [merId]
     * @Return: java.util.List<com.zbkj.crmeb.store.dto.ChannelIntegralProductConfigDTO>
     * @Author: wangzh
     * @Date: 2023/2/27 17:21
     */
    List<ChannelIntegralProductConfigDTO> getList(Integer merId);

    /**
     * 功能描述: 通过id删除积分商品
     * @Param: [id]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/2/28 13:53
     */
    Boolean deleteIntegralProduct(Integer id);

    /**
     * 功能描述: 兑换商品
     * @Param: [id, addressId]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/3/6 13:51
     */
    Boolean exchangeProduct(Integer id, String attrValueId, Integer addressId);
}
